package com.houweishi.module.train.service;

import com.houweishi.common.core.domain.AjaxResult;
import com.houweishi.module.train.domain.OaTrain;
import com.houweishi.module.train.domain.OaTrainApproval;

import java.util.List;

/**
 * 培训管理Service接口
 * 
 * @author houweishi
 * @date 2023-02-21
 */
public interface IOaTrainService 
{
    /**
     * 查询培训管理
     * 
     * @param trainId 培训管理主键
     * @return 培训管理
     */
    public OaTrain selectOaTrainByTrainId(Long trainId);

    /**
     * 查询培训管理列表
     * 
     * @param oaTrain 培训管理
     * @return 培训管理集合
     */
    public List<OaTrain> selectOaTrainList(OaTrain oaTrain);

    /**
     * 新增培训管理
     * 
     * @param oaTrain 培训管理
     * @return 结果
     */
    AjaxResult insertOaTrain(OaTrain oaTrain);

    /**
     * 修改培训管理
     * 
     * @param oaTrain 培训管理
     * @return 结果
     */
    public int updateOaTrain(OaTrain oaTrain);

    /**
     * 批量删除培训管理
     * 
     * @param trainIds 需要删除的培训管理主键集合
     * @return 结果
     */
    public int deleteOaTrainByTrainIds(Long[] trainIds);

    /**
     * 删除培训管理信息
     * 
     * @param trainId 培训管理主键
     * @return 结果
     */
    public int deleteOaTrainByTrainId(Long trainId);

    /**
     * 查询培训管理列表(含业务表审批状态)
     * @param oaTrain
     * @return
     */
    List<OaTrainApproval> selectOaTrainApprovalList(OaTrain oaTrain);
}
